#ifndef wm_focus_h
#define wm_focus_h
/*
 * Sylvain BERTRAND <digital.ragnarok@gmail.com>
 * code protected by GNU GPL v3
 */
struct wm_client *focus_client;
GList *focus_order;
void focus_startup(void);
void focus_shutdown(void);
void focus_set_client(struct wm_client *client);
void focus_nothing(void);
struct wm_client *focus_fallback(gboolean allow_refocus, gboolean allow_pointer, gboolean allow_omnipresent,
	gboolean focus_lost);
void focus_order_add_new(struct wm_client *c);
void focus_order_remove(struct wm_client *c);
void focus_order_to_top(struct wm_client *c);
void focus_order_to_bottom(struct wm_client *c);
gboolean focus_valid_target(struct wm_client *ft, guint desktop, gboolean helper_windows, gboolean all_desktops,
	gboolean nonhilite_windows, gboolean desktop_windows, gboolean user_request);
#endif
